#ifndef PINTORCALEIDOSCOPICO_H
#define PINTORCALEIDOSCOPICO_H

#include <QPainter>
#include "referencia.h"
#include "visitante.h"
#include "dibujo.h"
#include "punto.h"

class PintorCaleidoscopico : public Visitante
{
public:
    PintorCaleidoscopico();
    virtual ~PintorCaleidoscopico();

    void asignarContextoGrafico (QPainter *painter) { _painter = painter; }

    void agregarDibujo(Dibujo *pDibujo) {
        _dibujos.push_back(Referencia<Dibujo>(pDibujo));
    }

    virtual void visitar(Referencia<Celda> celda);

    virtual void actualizar();

private:
    QPainter *_painter;

    vector<Referencia<Dibujo> > _dibujos;
};

#endif // PINTORCALEIDOSCOPICO_H
